/**
 * Created by Administrator on 2017/6/8 0008.
 */
/**
 * @version:	 		 2017.01.01
 * @creatTime: 	 	 2017.06.08
 * @updateTime: 		 2017.06.08
 * @author:			  wuwg
 * @name:  				 index
 * @description       * 首页组织结构树模块   app+moduleName+ selfName ：  app+index+ tree
 */

define('appIndexTree',['jquery','tree','config'], function (jquery,tree,config) {
    return function (vm) {
        // 创建树
        var treeMax = $('#jsTreeMax').addTree({
            showLog : false, // 是否显示日志
            parentKey : 'pId', // 父元素id

            // 下面三个信息项缺一不可
            key : 'id', //   数据id    注意千万不要用驼峰命名，就算是驼峰命名最后取值也是小写的
            name : 'name', // 数组的中文展示    (辖区名称)
            childKey : 'children', // 子元素

            data : [], //  数据对象为数组
            cache : false, //  是否缓存数据
            cacheId : 'wTreeMaxLocalStorage', //  如果需要缓存，那么请设置换粗id默认
            itemIdPrefix : "fd-treeMax-", // 注意修改防止冲突
            extendArea : false, // 是否扩大点击区域 默认为false
            hasIcon : false, //  有图标
            canSelected : true, // 可以选中
            hasHoverEffect : true,
            // 滚动条参数
            hasScrollBar : true, // 是否有滚动条
            scrollBarContain : '.fd-scroll-track',
            scrollBarMinHeight : 50,
            treeContain : "#jsTreeContainMax",
            allowAppendNewNode : false, // 允许增加新的节点
            canSearch : false,
            hasTips : false, //  是否有提示框
            autocompleterIsAjax: true, //  是否是ajax加载数据
            autocompleterAjax: {
                url: 'json/search.json',
                method: 'get',
                data: 'nr',
                dataType: 'json',
                asych: true,
                success: function (data, stauts, xhr) {
                    console.log('成功')
                },
                error: function (data, stauts, xhr) {
                    console.log('失败')
                }
            },
            // 回调函数
            callback : {
               onClick : function (_this, event, target, _scope) {
                     _this.closest('.js-select-conponent')
                         .find('.fd-select-val').text(_this.text())
                         .end()
                         .find('.fd-select-menu-contain').addClass('fd-hidden');
                    //  传递参数
                    vm.query.parentCode=_this.closest('.ul-tree-ct').siblings('h3').data('id');
                    vm.query.childCode=_this.closest('h3').data('id');
                },
                onExpand : function (_this, event, target, _scope) {
                    // console.log('展开的回调函数')
                    _scope.scrollBar.update(20);
                },
                onCollapse : function (_this, event, target, _scope) {
                    //   console.log('收起的回调函数')
                    _scope.scrollBar.update(20);
                }
            }
        });
//  更新树的数据，异步ajax
        $.ajax({
            url : config.url.index.tree,
            dataType : 'json',
            data : '',
            method : 'get',
            cache : true,
            crossDomain : false,
            timeout : 2000,
            async : true,
            success : function (data) {
                var getNodes = data.data;
                //克隆对象函数
                function coloneNodes() {
                    var coloneNodes = JSON.stringify(getNodes);
                    return JSON.parse(coloneNodes);
                }
                //  大树
                var treeMaxCacheId = treeMax.opts.cacheId + treeMax._this.attr('id');

                if (!window.localStorage.getItem(treeMaxCacheId)) {
                    var treeMaxNodes = coloneNodes();
                    // 默认第一个不能缩起
                    treeMaxNodes.disabled = true;
                    // 更新数据
                    treeMax.update(treeMaxNodes);
                    // 设置能被选中的节点  2级以下的不能被选中
                  //  treeMax.setWhatItemCanSelected(2);
                }
                // 最高人民法院不能选择
                $('#fd-treeMax-990000').attr('canselected', 'false');

                //  默认哪个节点点击
               // $('#fd-treeMax-000000').trigger('click.tree');
            }
        });
    }
});